package socket.myRPC.rpc.protocol;

import socket.myRPC.util.CommonUtils;
import socket.myRPC.util.Define;

import java.io.Serializable;

/**
 * 这是 header
 */
public class MyHeader implements Serializable {
  // 表示 输入输出 参数，不同的参数 针对 request，response
  private int flag;
  // 表示 用来保证 同一个请求
  private long requestID;
  // 表示 content 数据长度
  private long dataLen;
  
  public static MyHeader createHeader(byte[] msg, long requestID) {
    MyHeader myHeader = new MyHeader();
    
    // 0x14141414 表示 request
    myHeader.setFlag(Define.REQUEST_FLAG);
    // 表示 数据长度
    myHeader.setDataLen(msg.length);
    // 为了保证同一个请求，使用同一个 RequestID
    myHeader.setRequestID(requestID);
    
    return myHeader;
  }
  
  public int getFlag() {
    return flag;
  }
  
  public void setFlag(int flag) {
    this.flag = flag;
  }
  
  public long getRequestID() {
    return requestID;
  }
  
  public void setRequestID(long requestID) {
    this.requestID = requestID;
  }
  
  public long getDataLen() {
    return dataLen;
  }
  
  public void setDataLen(long dataLen) {
    this.dataLen = dataLen;
  }
}
